# -*- coding: utf-8 -*-            
# @Author : chenliang
# @Time : 2024/1/5 13:27
from lib2to3.pgen2 import driver

from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains
from datetime import datetime,timedelta
import random


class AdminApiGatewayLocator:




   # api gate菜单
   click_api_gateway = (By.XPATH, "//div[contains(@data-menu-id,'API_GATEWAY')]")
   # api gate菜单
   click_document = (By.XPATH, "//div[contains(@data-menu-id,'DOCUMENT')]")
   # Data Storage Subscription菜单
   click_data_storage_subscription = (By.XPATH, "//div[contains(@data-menu-id,'DATA_STORAGE_SUBSCRIPTION')]")
   # app binding 列表
   click_appbinding = (By.CSS_SELECTOR, '[path="/console/apiGateway/appBinding"]')
   #是否包含APP Binding
   if_app_binding = (By.XPATH, '(//div[@class="antd4-space-item"])[1]')
   #是否包含creating bingding
   if_create_binding = (By.XPATH, '//*[@id="root"]/section/section/main/div/div/div/div/div[2]/form/div[1]/div/div/div/button/span[2]')
   #是否包含app name
   if_app_name = (By.XPATH, '//*[@id="root"]/section/section/main/div/div/div/div/div[2]/div/div/div/div/div/div/table/thead/tr/th[1]')
   #lock按钮
   click_lock = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-link table-operation-btnLine-btn"])[2]')
   #confirm按钮
   click_confirm = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[3]')
   #是否已锁定
   if_locked = (By.XPATH, '(//span[@class="antd4-badge-status-text"])')
   #菜单...按钮
   click_menu = (By.XPATH, '(//span[@class="anticon anticon-ellipsis table-operation-ellipsis"])')
   #解锁按钮
   click_unlock = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])')
   # 输入app name 或者appid
   input_appname_id = (By.XPATH, '(//input[@id="searchKey"])')
   #点击用户类型
   click_user_type = (By.XPATH, '(//span[@class="antd4-select-selection-search"])')
   # 选择internal user
   select_intrnal_user = (By.XPATH, '(//div[@title="Internal User"])')
   # 选择end user
   select_end_user = (By.XPATH, '(//div[@title="End User"])')
   # 输入email
   input_email = (By.XPATH, '(//input[@id="email"])')
   # 搜索app
   search_app = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[2]')
   # 第一个app name
   if_appname = (By.XPATH, '(//div[@class="cre-table-nowrap"])[1]')
   # 第一个app id
   if_appid = (By.XPATH, '(//div[@class="cre-table-nowrap"])[2]')
   # 第一个user email
   if_useremail = (By.XPATH, '(//div[@class="cre-table-nowrap"])[5]')
   # status 筛选按钮
   select_statusapp = (By.XPATH, '(//span[@class="anticon anticon-filter"])[1]')
   # 选择normal
   select_normalapp = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[1]')
   # 选择locked
   select_lockedapp = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[2]')
   # usertype 筛选按钮
   select_usertype = (By.XPATH, '(//span[@class="anticon anticon-filter"])[2]')
   # 选择internaluser
   select_internaluser = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[4]')
   # 选择locked
   select_enduser = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[2]')
   #select_enduser = (By.XPATH, '(//li[@data-menu-id="rc-menu-uuid-14031-6-endUser"])')
   # reset
   #click_reset = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-default"])[1]')
   # 选择status ok
   select_ok_status = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary antd4-btn-sm"])[1]')
   #第一个状态
   if_status_app = (By.XPATH, '(//span[@class="antd4-badge antd4-badge-status antd4-badge-not-a-wrapper"])[1]')
   #if_status = (By.XPATH, '(//span[text()="Normal"])[1]')
   # 选择status ok
   select_ok_user = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary antd4-btn-sm"])[1]')
   # 第一个user
   if_user = (By.XPATH, '(//div[@class="cre-table-nowrap"])[4]')



   #文档中心
   click_document_center = (By.CSS_SELECTOR, '[path="/console/documentApi/portal"]')
   #是否切换到新的页面
   if_newiframe =(By.CSS_SELECTOR, '[title="document"]')
   #是否有overview
   #if_overview = (By.XPATH, '(//li[@class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"])[2]')
   #if_overview = (By.CSS_SELECTOR, '#__docusaurus > div.main-wrapper.mainWrapper_z2l0.docsWrapper_BCFX > div > aside > div > nav > ul > li:nth-child(2)')
   if_overview = (By.XPATH,'(//a[@class="menu__link"])[1]')
   #是否有cloud product
   if_product = (By.XPATH, '(//a[@class="menu__link menu__link--sublist menu__link--sublist-caret"])[1]')
   #是否有parameters
   if_parameters = (By.XPATH, '(//li[@class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"])[3]')
   #是否有user centers
   if_use_center = (By.XPATH, '(//a[@class="menu__link menu__link--sublist menu__link--sublist-caret"])[2]')
   #是否有plateform
   if_plateform = (By.XPATH, '(//a[@class="menu__link menu__link--sublist menu__link--sublist-caret"])[3]')

   #点击plateform data subscription
   click_pds = (By.CSS_SELECTOR, '[path="/console/dataStorageSubscription/platformData"]')
   #点击create new
   click_create_new = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[1]')
   #点击选择file type
   click_file_type = (By.XPATH, '(//span[@class="antd4-select-selection-search"])[2]')
   #选择billing statement
   select_billing_statement = (By.XPATH,'(//div[@class="antd4-select-item-option-content"])[1]')
   # 选择instance spending details
   select_isd = (By.XPATH, '(//div[@class="antd4-select-item-option-content"])[2]')
   # 输入sub name
   input_subname = (By.XPATH, '(//input[@id="creForm_fileSubscribeName"])')
   # 输入Schedule
   input_schedule = (By.XPATH, '(//div[@class="antd4-picker-input"])')
   #选择时间
   # current_date = datetime.now()
   # future_date = current_date + timedelta(days=7)
   # formatted_future_date = (current_date + timedelta(days=7)).strftime("%Y-%m-%d")
   # print(formatted_future_date)
   # xpath_expr = f"//td[@title='{formatted_future_date}']"
   # select_day = (By.XPATH, xpath_expr)
   select_day = (By.XPATH, '(//td[@class="antd4-picker-cell antd4-picker-cell-in-view"])[7]')
   # 点击ok
   click_ok = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary antd4-btn-sm"])')
   #end point输入框
   input_end_point = (By.XPATH, '(//input[@placeholder="Enter OSS Data Storage End Point"])')
   # Directory输入框
   input_directory = (By.XPATH, '(//input[@placeholder="Enter OSS Data Storage Directory"])')
   # Access Key输入框
   input_access_key = (By.XPATH, '(//input[@placeholder="Enter OSS Data Storage Access Key"])')
   # Secret Key输入框
   input_secret_key = (By.XPATH, '(//input[@placeholder="Enter OSS Data Storage Secret Key"])')
   # submit按钮
   click_submit = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[3]')
   #是否有创建好的subname
   if_subname = (By.XPATH, '(//div[@class="cre-table-nowrap"])[1]')
   #点击remove
   click_remove = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-link"])[4]')
   # 点击remove
   click_remove_ok = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[4]')
   #点击编辑按钮
   click_edit = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-link"])[3]')

   # system settings菜单
   click_system_setting = (By.XPATH, "(//div[contains(@data-menu-id,'SETTING_DIR')])[2]")
   # vcenter mgmt 列表
   click_vcentermgmt = (By.CSS_SELECTOR, '[path="/console/vCenterMgmt"]')
   #搜索输入框
   input_vcentername = (By.XPATH, '(//input[@id="value"])')
   #点击搜索按钮
   click_search = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[2]')
   # 点击搜索按钮datastore
   click_search_datastore = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[1]')
   # 第一个搜索结果vcenter name
   if_vcenter_name = (By.XPATH, '(//td[@class="antd4-table-cell"])[1]')
   # 一共1条搜索结果
   if_total_one_items = (By.XPATH, '(//li[@class="antd4-pagination-total-text"])')
   #点击reset按钮
   click_reset = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-default"])')
   #点击detail
   click_detail = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-link table-operation-btnLine-btn"])[1]')
   #是否有vcenter
   if_vcenter = (By.XPATH, '(//div[text()="vCenter"])')
   # 是否有Datastore
   if_datastore = (By.XPATH, '(//div[text()="Datastore"])')
   # 是否有Network
   if_network = (By.XPATH, '(//div[text()="Network"])')
   #搜索datastore输入框
   input_datastore = (By.XPATH, '(//input[@placeholder="Please enter Datastore Name"])')
   #是否有datastore name
   if_datasource_name = (By.XPATH, '(//td[@class="antd4-table-cell"])[3]')
   #是否有portgroup name
   if_portgroupname = (By.XPATH, '(//th[@class="antd4-table-cell"])[7]')

   # operation management菜单
   click_operation_mgmt = (By.XPATH, "(//div[contains(@data-menu-id,'OPERATION_MANAGEMENT')])")
   # resource compare query 列表
   click_rcq = (By.CSS_SELECTOR, '[path="/console/operationManagement/resourceCompare"]')
   #搜索instance输入框
   input_instanceid = (By.XPATH, '(//input[@id="instanceId"])')
   #搜索出来的第一个instanceid
   if_instanceid = (By.XPATH, '(//td[@class="antd4-table-cell"])[1]')



   # data_deletion菜单
   click_data_deletion = (By.XPATH, "(//div[contains(@data-menu-id,'DATA_DELETION')])")
   # ASCM data 列表
   click_ascm_data = (By.CSS_SELECTOR, '[path="/console/ascmData"]')
   #问号符
   click_question_mark = (By.XPATH, '(//span[@class="anticon anticon-question-circle"])')
   #问号符提示语
   if_question_prompt = (By.XPATH, '(//div[@class="antd4-popover-inner-content"])')
   # 感叹符提示语
   if_exclamation_prompt  = (By.XPATH, '(//div[@class="antd4-alert-message"])')
   #点击搜索条件
   click_search_criteria = (By.XPATH, '(//div[@class="antd4-select antd4-select-single antd4-select-show-arrow"])')
   #搜索条件level
   if_search_level = (By.XPATH, '(//div[@class="antd4-select-item-option-content"])[1]')
   #搜索条件importer
   if_search_import = (By.XPATH, '(//div[@class="antd4-select-item-option-content"])[2]')
   # 搜索data输入框
   input_ascm_data = (By.XPATH, '(//input[@id="value"])')
   # 点击搜索按钮
   click_ascm_search = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[2]')
   # 点击reset按钮
   click_ascm_reset = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-default"])[1]')
   #搜索出的第一个name为
   if_ascm_name = (By.XPATH, '(//td[@class="antd4-table-cell"])[1]')
   # 搜索出的第一个importer
   if_ascm_importer = (By.XPATH, '(//td[@class="antd4-table-cell"])[4]')
   # 点击log按钮
   click_log = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-link table-operation-btnLine-btn"])[2]')
   # 点击api log按钮
   click_apilog = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-link"])[2]')
   # 是否有request content
   if_request_content = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[8]')
   # 是否有response content
   if_response_content = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[9]')

   #是否有basic info
   if_basic_info = (By.XPATH, '(//div[@class="antd4-descriptions-title"])[1]')
   # 是否有level
   if_level = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[1]')
   # 是否有status
   if_status = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[2]')
   # 是否有creation_time
   if_creation_time = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[3]')
   # 是否有importer
   if_importer = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[4]')
   # 是否有import time
   if_import_time = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[5]')

   #是否有Operational Information
   if_operational_information = (By.XPATH, '(//div[@class="table-info-title"])[1]')
   #是否有operation id
   if_operational_id = (By.XPATH, '(//th[@class="antd4-table-cell"])[6]')
   # 是否有Operator
   if_operator = (By.XPATH, '(//th[@class="antd4-table-cell"])[7]')
   # 是否有Operator IP
   if_operator_ip = (By.XPATH, '(//th[@class="antd4-table-cell"])[8]')
   # 是否有Operation Time
   if_operation_time = (By.XPATH, '(//th[@class="antd4-table-cell"])[9]')
   # 是否有Operation Result
   if_operation_result = (By.XPATH, '(//th[@class="antd4-table-cell"])[10]')

   # 是否有Data Deletion Detail
   if_datadeletion_detail = (By.XPATH, '(//div[@class="table-info-title"])[2]')
   #Detail是否有operation id
   if_detail_operational_id = (By.XPATH, '(//th[@class="antd4-table-cell"])[11]')
   # 是否有Data Type
   if_data_type = (By.XPATH, '(//th[@class="antd4-table-cell"])[12]')
   # 是否有Value
   if_value = (By.XPATH, '(//th[@class="antd4-table-cell"])[13]')
   # detail是否有Status
   if_detail_status = (By.XPATH, '(//th[@class="antd4-table-cell"])[14]')
   # 是否有Start Time
   if_start_time = (By.XPATH, '(//th[@class="antd4-table-cell"])[15]')

   #cre data
   # cre data 列表
   click_cre_data = (By.CSS_SELECTOR, '[path="/console/singleCreData"]')
   # 是否有basic info
   if_cre_basic_info = (By.XPATH, '(//div[@class="antd4-descriptions-title"])[1]')
   # 是否有Account Email
   if_cre_account_mail = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[1]')
   # 是否有status
   if_cre_status = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[2]')
   # 是否有creation_time
   if_cre_creation_time = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[3]')
   # 是否有Payment Mode
   if_cre_payment_mode = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[4]')
   # 是否有Available Balance
   if_cre_available_balance = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[5]')
   # 是否有Outstanding Amount (IDR)
   if_cre_outstanding_amount = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[6]')
   # 是否有Account Type
   if_cre_account_type = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[7]')
   # 是否有User Name
   if_cre_user_name = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[8]')
   # 是否有Importer
   if_cre_importer = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[9]')
   # 是否有Import Time
   if_cre_import_time = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[10]')

   # 是否有operation id
   if_cre_operational_id = (By.XPATH, '(//th[@class="antd4-table-cell"])[12]')
   # 是否有Operator
   iif_cre_operator = (By.XPATH, '(//th[@class="antd4-table-cell"])[13]')
   # 是否有Operator IP
   if_cre_operator_ip = (By.XPATH, '(//th[@class="antd4-table-cell"])[14]')
   # 是否有Operation Time
   if_cre_operation_time = (By.XPATH, '(//th[@class="antd4-table-cell"])[15]')
   # 是否有Operation Result
   if_cre_operation_result = (By.XPATH, '(//th[@class="antd4-table-cell"])[16]')

   # Detail是否有operation id
   if_cre_ddetail_operational_id = (By.XPATH, '(//th[@class="antd4-table-cell"])[17]')
   # 是否有Data Type
   if_cre_ddata_type = (By.XPATH, '(//th[@class="antd4-table-cell"])[18]')
   # 是否有Value
   if_cre_dvalue = (By.XPATH, '(//th[@class="antd4-table-cell"])[19]')
   # detail是否有Status
   if_cre_detail_status = (By.XPATH, '(//th[@class="antd4-table-cell"])[20]')
   # 是否有Start Time
   if_cre_dtart_time = (By.XPATH, '(//th[@class="antd4-table-cell"])[21]')


   # monitoring events 列表
   click_monitoring_events = (By.CSS_SELECTOR, '[path="/console/operationManagement/monitoringEvent"]')
   #是否有type id
   if_type_id = (By.XPATH, '(//th[@class="antd4-table-cell"])[1]')
   # 是否有name
   if_name = (By.XPATH, '(//th[@class="antd4-table-cell"])[2]')
   # 是否有type
   if_type = (By.XPATH, '(//th[@class="antd4-table-cell"])[3]')
   # 是否有Monitor From
   if_monitor_from = (By.XPATH, '(//th[@class="antd4-table-cell"])[4]')
   # 是否有SLA Breach
   if_sla_breach = (By.XPATH, '(//th[@class="antd4-table-cell"])[6]')
   # 是否有actions
   if_actions = (By.XPATH, '(//th[@class="antd4-table-cell antd4-table-cell-fix-right antd4-table-cell-fix-right-first"])[1]')
   # monitoring events搜索输入框
   input_events_name = (By.XPATH, '(//input[@id="queryCriteria"])[1]')
   # 点击搜索按钮event
   click_search_events = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[1]')
   #event的第一个搜索结果
   if_events_name = (By.XPATH, '(//td[@class="antd4-table-cell"])[2]')
   # event总数
   events_sum = (By.XPATH, '(//li[@class="antd4-pagination-total-text"])[1]')
   # event的第4个name
   if_events_name_four = (By.XPATH, '(//td[@class="antd4-table-cell"])[38]')

   #event详情type id
   if_detail_tpye_id = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[1]')
   # event详情Event Type
   if_detail_event_type = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[2]')
   # event详情Monitor From
   if_detail_monitor_from = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[3]')
   # event详情SLA
   if_detail_sla = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[4]')
   # event详情Notification Template
   if_detail_notification_template = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[5]')
   # event详情FAQ
   if_detail_faq = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[6]')

   # notification详情name
   if_notification_name = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[1]')
   # notification详情Notification Title
   if_notification_title = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[2]')
   # notification详情Notification Type
   if_notification_type = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[3]')
   # event的notification
   if_notification = (By.XPATH, '(//td[@class="antd4-table-cell"])[10]')
   #收起侧边栏
   click_left_edge = (By.XPATH, '(//div[@class="cre-width-trigger"])')

   #点击edit
   click_edit_monitoring = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-link table-operation-btnLine-btn"])[3]')
   #输入name
   input_name = (By.XPATH, '(//input[@id="eventName"])')
   #点击add sla
   click_add_sla = (By.XPATH, '(//span[@class="anticon anticon-plus"])')
   # 点击cancel
   click_cancel = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-default"])[2]')
   #点击submit
   click_submit_editmonitoring = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[2]')
   #sla输入框
   input_sla = (By.XPATH, '(//input[@class="antd4-input-number-input"])')
   # event的notification
   if_sla_avlue = (By.XPATH, '(//td[@class="antd4-table-cell"])[9]')
   #是否包含issue
   if_issue = (By.XPATH, '(//div[@class="title___2OB4r"])[1]')
   # 是否包含Information
   if_information = (By.XPATH, '(//div[@class="title___2OB4r"])[2]')
   # 是否包含Discussion
   if_discussion= (By.XPATH, '(//div[@class="antd4-space-item"])[6]')
   # events 列表
   click_events = (By.CSS_SELECTOR, '[path="/console/operationManagement/events"]')
   #是否是第一个event id
   if_event_id = (By.XPATH, '(//td[@class="antd4-table-cell"])[1]')

   #点击筛选status的按钮
   click_selector = (By.XPATH, '(//span[@class="antd4-dropdown-trigger antd4-table-filter-trigger active"])[1]')
   # 点击reset状态
   click_reset_status = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-link antd4-btn-sm"])[1]')
   # 点击确认选择状态
   click_ok_status = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary antd4-btn-sm"])[1]')
   # 选择auto fix
   select_auto_fix = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[3]')
   # 选择closed
   select_closed = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[4]')
   # ignored
   select_ignored = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[6]')
   #不可点击的菜单按钮
   disabled_menu = (By.XPATH, '(//span[@class="anticon anticon-ellipsis table-operation-ellipsis___2wAo_"])[1]')
   # 事件菜单按钮
   event_menu = (By.XPATH, '(//span[@class="anticon anticon-ellipsis table-operation-ellipsis"])[1]')
   # 取消按钮
   click_cancel_status = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[9]')
   #点击ok按钮
   click_ok_events = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary antd4-btn-dangerous"])[1]')
   # ignore
   click_ignore_status = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[10]')


   #点击搜索选项框
   click_search_input = (By.XPATH, '(//span[@class="antd4-select-selection-search"])[1]')
   #点击选择event id
   select_eventid = (By.XPATH, '(//div[@class="antd4-select-item-option-content"])[1]')
   #eventid输入框提示语
   eventid_prompt = (By.XPATH, '(//input[@placeholder="Please Enter Event ID"])[1]')
   # 点击选择event name
   select_eventname = (By.XPATH, '(//div[@class="antd4-select-item-option-content"])[2]')
   # eventname输入框提示语
   eventname_prompt = (By.XPATH, '(//input[@placeholder="Please Enter Event Name"])[1]')
   # 点击选择account email
   select_accountemail = (By.XPATH, '(//div[@class="antd4-select-item-option-content"])[3]')
   # account email输入框提示语
   accountemail_prompt = (By.XPATH, '(//input[@class="antd4-select-selection-search-input"])[2]')
   # 点击选择Operated By
   select_operated_by = (By.XPATH, '(//div[@class="antd4-select-item-option-content"])[4]')
   # Operated By输入框提示语
   operated_by_prompt = (By.XPATH, '(//input[@placeholder="Please Enter Operated By"])[1]')
   #第一个eventid
   if_events_id = (By.XPATH, '(//td[@class="antd4-table-cell"])[1]')
   # 第一个eventid
   if_account_email = (By.XPATH, '(//td[@class="antd4-table-cell"])[3]')
   # 第一个eventid
   if_operated_by = (By.XPATH, '(//td[@class="antd4-table-cell"])[8]')
   #选择第一个邮箱
   select_first_email = (By.XPATH, '(//div[@class="antd4-select-item-option-content"])[5]')

   #event页面显示
   #是否有event name
   if_events_name_str = (By.XPATH, '(//span[@class="antd4-table-column-title"])[1]')
   # 是否有account name
   if_account_email_str = (By.XPATH, '(//th[@class="antd4-table-cell"])[3]')
   # 是否有issue
   if_issue_str = (By.XPATH, '(//span[@class="antd4-table-column-title"])[2]')
   # 是否有status
   if_status_str = (By.XPATH, '(//span[@class="antd4-table-column-title"])[3]')
   # 是否有operated by
   if_operated_by_str = (By.XPATH, '(//th[@class="antd4-table-cell"])[8]')
   # 是否有event name
   if_actions_str = (By.XPATH, '(//th[@class="antd4-table-cell antd4-table-cell-fix-right antd4-table-cell-fix-right-first"])[1]')

   #related event页面
   # 点击related event
   click_related_event = (By.XPATH, '(//span[@class="antd4-badge"])[1]')
   #related event下的event id 字段
   if_related_eventid = (By.XPATH, '(//th[@class="antd4-table-cell"])[1]')
   # related event下的issue 字段
   if_related_issue = (By.XPATH, '(//th[@class="antd4-table-cell"])[2]')
   #related event下的搜索输入框
   input_events_id = (By.XPATH, '(//input[@placeholder="Please enter Event ID."])[1]')
   # related event下的搜索按钮
   click_related_search = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-default antd4-btn-icon-only antd4-input-search-button"])[1]')
   #搜索出的第一个event id
   if_related_event_id = (By.XPATH, '(//td[@class="antd4-table-cell"])[1]')

   #评论输入框
   input_discussion = (By.XPATH, '(//p[@data-slate-node="element"])[2]')
   # 提交评论
   add_discussion = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[1]')
   # 编辑评论
   edit_discussion = (By.XPATH, '(//span[@class="anticon icon___x8asG"])[1]')
   #编辑评论输入框
   edit_input_discussion = (By.XPATH, '(//p[@data-slate-node="element"])[3]')
   # 提交评论
   submit_discussion = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[2]')
   # 删除评论
   delete_discussion = (By.XPATH, '(//span[@class="anticon icon___x8asG"])[2]')
   #添加评论成功
   add_discussion_succ = (By.XPATH, '(//div[@class="antd4-message-custom-content antd4-message-success"])')
   #删除评论成功 Deleted successfully.
   delete_discussion_succ = (By.XPATH, '(//div[@class="antd4-message-custom-content antd4-message-success"])[1]')
   #编辑评论 Updated successfully.
   edit_discussion_succ = (By.XPATH, '(//div[@class="antd4-message-custom-content antd4-message-success"])[1]')
   #是否有add的评论
   if_add_comment = (By.XPATH, '(//div[@class="comment-content___3NOdk"])[1]')


   #trouble-shooting
   #点击trouble-shooting
   click_trouble_shooting = (By.XPATH, '(//a[@class="link___2YpI9"])[1]')
   #是否包含check
   if_check_str = (By.XPATH, '(//h1[@class="title___30lxL"])[1]')
   # 是否包含suggested
   if_suggested_str = (By.XPATH, '(//h2[@class="title___30lxL"])[1]')
   #是否有Trouble-Shooting
   if_trouble_shooting = (By.XPATH, '(//div[@class="antd4-drawer-title"])[1]')
   # 点击Event Trigger Rules & Scenarios
   click_rules_scenarios = (By.XPATH, '(//a[@class="link___2YpI9"])[2]')
   # 是否有Rules & Scenarios
   if_rules_scenarios = (By.XPATH, '(//div[@class="antd4-drawer-title"])[1]')

   #event information的字段检查
   #info下是否有eventid
   if_info_event_id = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[1]')
   # info下是否有Status
   if_info_status = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[2]')
   # info下是否有Reason
   if_info_reason = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[3]')
   # info下是否有eDO Ticket No
   if_info_edo = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[4]')
   # info下是否有Dev Portal Ticket No.
   if_info_dev = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[5]')
   # info下是否有Operated By
   if_info_operatedby = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[6]')
   # info下是否有Last Updated Time
   if_info_last = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[7]')
   # info下是否有Time Created
   if_info_time = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[8]')
   # info下是否有Close Time
   if_info_close = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[9]')
   # info下是否有hide
   #if_info_hide = (By.XPATH, '(//div[@class="antd4-space-item"])[10]')
   if_info_hide = (By.XPATH, '(//span[text()="Hide"])')
   # info下是否有open
   if_info_open = (By.XPATH, '(//span[text()="Open"])')
   #点击edit
   click_edit_info = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-default antd4-btn-sm"])')
   #issue文本
   if_issue_string = (By.XPATH, '(//div[@class="content___uNKdI"])[1]')

   # 选择筛选字段 字段的值
   click_select_event = (By.XPATH, '(//span[@class="antd4-select-selection-search"])')
   #输入operate by为Admin
   input_operate = (By.XPATH, '(//input[@id="queryCriteria"])')


   #cust id 字段的值
   if_custid = (By.XPATH, '(//span[@id="custId"])')
   # account email 的值
   if_acc_email = (By.XPATH, '(//span[@id="accountEmail"])')
   # product_name 的值
   if_product_name = (By.XPATH, '(//span[@id="productName"])')
   # instance的值
   if_instance = (By.XPATH, '(//span[@id="instanceId"])')
   # Organization
   if_organization = (By.XPATH, '(//div[@class="antd4-form-item-control-input-content"])[5]')
   # Resource Due Date
   if_resource_due_date = (By.XPATH, '(//div[@class="antd4-form-item-control-input-content"])[6]')
   # Auto Renewal
   if_auto_renewal = (By.XPATH, '(//div[@class="antd4-form-item-control-input-content"])[7]')
   # Renewal Status
   if_renewal_status = (By.XPATH, '(//div[@class="antd4-form-item-control-input-content"])[8]')
   # Exist in CRE
   if_exist_in_cre = (By.XPATH, '(//div[@class="antd4-form-item-control-input-content"])[9]')
   # Exist in ASCM
   if_exist_in_ascm = (By.XPATH, '(//div[@class="antd4-form-item-control-input-content"])[10]')
   # First Meter Failure Timestamp的值
   if_first = (By.XPATH, '(//span[@id="meteringCycle"])')
   # handleMsg的值
   if_handleMsg = (By.XPATH, '(//input[@id="handleMsg"])')
   # region的值
   if_region = (By.XPATH, '(//span[@id="region"])')
   # orderMainId的值
   if_ordermainid = (By.XPATH, '(//input[@id="orderMainId"])')
   # expireTime的值
   if_expireTime = (By.XPATH, '(//input[@id="expireTime"])')
   # existCre的值
   if_existcre = (By.XPATH, '(//span[@id="existCre"])')
   # existApsara的值
   if_existApsara = (By.XPATH, '(//span[@id="existApsara"])')

   #个人、bp、TP币种属性值
   if_settlement_currency = (By.XPATH, '(//span[@class="antd4-descriptions-item-content"])[5]')
   # personal user菜单
   click_personal_user = (By.XPATH, "(//div[contains(@data-menu-id,'PERSONAL_USER')])")
   # organization 列表
   click_organization = (By.CSS_SELECTOR, '[path="/console/organization/personalUser"]')
   # ENTERPRISE_USER菜单
   click_enterprise_user = (By.XPATH, "(//div[contains(@data-menu-id,'ENTERPRISE_USER')])")
   # ep organization 列表
   click_ep_organization = (By.CSS_SELECTOR, '[path="/console/organization/enterPriseUser"]')
   # BUSINESS_PARTNER菜单
   click_business_partner = (By.XPATH, "(//div[contains(@data-menu-id,'BUSINESS_PARTNER')])")
   # bp organization 列表
   click_bp_organization = (By.CSS_SELECTOR, '[path="/console/organization/businessPartner"]')
   # TECH_PARTNER菜单
   click_tech_partner = (By.XPATH, "(//div[contains(@data-menu-id,'TECH_PARTNER')])")
   # tp organization 列表
   click_tp_organization = (By.CSS_SELECTOR, '[path="/console/organization/techPartner"]')
   # ep和ru币种属性值
   if_ep_settlement_currency = (By.XPATH, '(//span[@class="antd4-descriptions-item-content"])[7]')
   # Reseller User 菜单
   click_reseller_user = (By.XPATH, "(//div[contains(@data-menu-id,'RESELLER_PARTNER')])")
   # ru organization 列表
   click_ru_organization = (By.CSS_SELECTOR, '[path="/console/organization/resellerPartner"]')

   # PROMO_MANAGER菜单
   click_promo_manager = (By.XPATH, "(//div[contains(@data-menu-id,'PROMO_MANAGER')])")
   # coupon Template 列表
   click_coupon_template = (By.CSS_SELECTOR, '[path="/console/couponTemplate"]')
   # voucher Template 列表
   click_voucher_template = (By.CSS_SELECTOR, '[path="/console/voucherTemplate"]')
   # create按钮
   click_create = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[1]')
   #input coupon template
   input_coupon_template = (By.XPATH, '(//input[@id="templateName"])[1]')
   # 选择fixed amount
   select_fixed_amount = (By.XPATH, '(//span[@class="antd4-radio"])[1]')
   # 输入fixed amount
   input_fixed_amount = (By.XPATH, '(//input[@id="money"])[1]')
   #点击选择币种
   click_currency = (By.XPATH, '(//div[@class="antd4-select antd4-select-single antd4-select-show-arrow"])[1]')
   #选择IDR
   select_idr = (By.XPATH, '(//div[@class="antd4-select-item-option-content"])[3]')
   # 选择dynamic
   select_dynamic = (By.XPATH, '(//span[@class="antd4-radio"])[2]')
   # 选择billing method
   click_billing_method = (By.XPATH, '(//div[@class="antd4-select antd4-select-in-form-item antd4-select-single antd4-select-show-arrow"])[1]')
   # 选择Subscription
   select_subscription = (By.XPATH, '(//div[@class="antd4-select-item-option-content"])[5]')
   # 选择Usable Product
   click_usable_product = (By.XPATH, '(//div[@class="antd4-select-selector"])[4]')
   # 选择all
   select_all = (By.XPATH, '(//div[@class="antd4-select-item-option-content"])[8]')
   # 点击提交
   click_submit_conpon = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary btn___1UTIT"])')
   # 第一个conpon template
   if_conpon_template = (By.XPATH, '(//div[@class="cre-table-nowrap"])[1]')
   #菜单按钮
   click_menu_conpon = (By.XPATH, '(//span[@class="anticon anticon-ellipsis table-operation-ellipsis"])[1]')
   # 点击disabled
   click_disabled = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[4]')
   # 点击disabled ok
   click_disabled_ok = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[3]')
   # 选择voucher dynamic
   select_voucher_dynamic = (By.XPATH, '(//span[@class="antd4-radio"])[1]')
   # 点击提交voucher
   click_submit_voucher = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary btn___16GYH"])')

   # 点击distribute
   #click_distribute = (By.XPATH, '(//li[@class="antd4-dropdown-menu-item antd4-dropdown-menu-item-active antd4-dropdown-menu-item-only-child"])[1]')
   click_distribute = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[6]')
   click_menulist = (By.CSS_SELECTOR, '[class="antd4-dropdown-menu-title-content"]')
   # 输入邮箱
   input_acemail = (By.XPATH, '(//input[@id="codes_0"])[1]')
   #选择第一个邮箱
   select_account_email = (By.XPATH, '(//div[@class="antd4-select-item-option-content"])[5]')
   # 点击确认distribute
   click_distribute_ok = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary btn___16GYH"])')
   #提示框
   if_prompt = (By.XPATH, '(//div[@class="antd4-tooltip-inner"])')
   #分发成功提示符 Distributed successfully.
   if_distribute_succ = (By.XPATH, '(//div[@class="antd4-message-custom-content antd4-message-success"])')
   # 提示符
   if_question = (By.XPATH, '(//span[@class="anticon help___3MPXm"])')
   #筛选按钮
   click_selector_currency = (By.XPATH, '(//span[@class="anticon anticon-filter"])[2]')
   # 选择IDR
   selector_idr = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[3]')
   # 选择ZAR
   selector_zar = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[1]')
   #选择ok
   selector_ok = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary antd4-btn-sm"])')
   # 选择reset
   selector_reset = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-link antd4-btn-sm"])')
   #不接点击的邮件地址
   if_disabled_email = (By.XPATH, '(//div[@class="antd4-select-item antd4-select-item-option antd4-select-item-option-disabled"])[1]')

   # 选择promo crowd
   select_promo_crowd = (By.XPATH, '(//span[@class="antd4-radio"])[1]')
   # 选择promo crowd值
   select_promo_crowd_value = (By.XPATH, '(//span[@class="antd4-select-selection-placeholder"])[1]')
   # 选择promo crowd值
   click_promo_crowd_value = (By.XPATH, '(//div[@class="antd4-select-item-option-content"])[5]')

   # settle amount菜单
   click_settle_amount = (By.XPATH, "(//div[contains(@data-menu-id,'SETTLE_AMOUNT_MANAGEMENT_PLT')])")
   # consumer settle amount 列表
   click_cousumer_settle_amount = (By.CSS_SELECTOR, '[path="/console/customerManagement/customerSettleAmount"]')
   # 输入company name
   input_company_name = (By.XPATH, '(//input[@id="companyCustomerCode"])[1]')
   # 点击联想出来的第一个name
   click_select_name = (By.XPATH, '(//div[@class="antd4-select-item-option-content"])[1]')
   # BP/TP Company Name
   if_company_name = (By.XPATH, '(//th[@class="antd4-table-cell"])[1]')
   # Settle Month
   if_settle_mouth = (By.XPATH, '(//th[@class="antd4-table-cell"])[2]')
   # Settle Amount
   if_settle_amount = (By.XPATH, '(//th[@class="antd4-table-cell"])[3]')
   # Settle Paid
   if_settle_paid = (By.XPATH, '(//th[@class="antd4-table-cell"])[4]')

   # 点击details
   click_details = (By.XPATH, '(//div[@class="antd4-tabs-tab-btn"])[2]')
   # 输入company name
   input_details_company_name = (By.XPATH, '(//input[@id="companyCustomerCode"])[2]')
   # 点击联想出来的第一个name
   click_details_select_name = (By.XPATH, '(//div[@class="antd4-select-item-option-content"])')
   # 点击search
   click_search_details = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[1]')
   # BP/TP Company Name
   if_details_company_name = (By.XPATH, '(//th[@class="antd4-table-cell"])[9]')
   # Settle Record Month
   if_details_settle_mouth = (By.XPATH, '(//th[@class="antd4-table-cell"])[10]')
   # Billing Cycle
   if_details_billing_cycle = (By.XPATH, '(//th[@class="antd4-table-cell"])[11]')
   # Account Email
   if_details_account_email = (By.XPATH, '(//th[@class="antd4-table-cell"])[12]')

   # PLATFORM USER菜单
   click_platform_user = (By.XPATH, "(//div[contains(@data-menu-id,'PLATFORM_USER')])")
   # role 列表
   click_role = (By.CSS_SELECTOR, '[path="/console/role"]')
   # role name 输入框
   input_role_name = (By.XPATH, '(//input[@placeholder="Role Name"])')
   # 搜索role name按钮
   search_role_name = (By.XPATH, '(//span[@class="antd4-input-group-addon"])')
   #第一个搜索结果
   if_rolename = (By.XPATH, '(//td[@class="antd4-table-cell"])[1]')
   # 第一个搜索结果
   if_nodata = (By.XPATH, '(//div[@class="antd4-empty-description"])[1]')

   #点击创建角色
   click_create_role = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary config-theme-system-user-primary-button buttonLeft___2sq7g"])')
   #role name输入框
   input_name_role = (By.XPATH, '(//input[@id="creForm_roleName"])[1]')
   # 点击next按钮
   click_next = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary config-theme-system-user-primary-button"])[1]')
   #点击提交
   click_sub = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary config-theme-system-user-primary-button"])[1]')
   # role 菜单按钮
   click_menu_role = (By.XPATH, '(//div[@class="antd4-dropdown-trigger table-operation-omit"])[1]')
   # edit role权限按钮
   edit_role_perm = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[1]')
   # delete按钮
   delete_role = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[2]')
   # 勾选know
   click_know = (By.XPATH, '(//span[@class="antd4-checkbox"])[1]')
   # 勾选know
   click_know_del = (By.XPATH, '(//span[@class="antd4-checkbox"])[1]')
   # 点击ok
   click_ok_del = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary config-theme-system-user-primary-button"])[1]')
   # edit role按钮
   edit_role = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-link table-operation-btnLine-btn"])[1]')
   #modify role name
   input_modify_rolename = (By.XPATH, '(//input[@id="creForm_modifyRoleName"])[1]')
   # 点击approval
   click_approval = (By.XPATH, '(//span[@class="antd4-tree-checkbox-inner"])[1]')
   # confirm edit per
   confirm_edit_per = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary config-theme-system-user-primary-button nextButton___B2-JL"])[1]')
   #mofify_succ
   mofify_succ = (By.XPATH, '(//div[@class="antd4-message-custom-content antd4-message-success"])[1]')

   # ru organization 列表
   click_ru_user = (By.CSS_SELECTOR, '[path="/console/user/resellerPartner"]')
   #input email&name
   input_email_num = (By.XPATH, '(//input[@id="fuzzy"])[1]')
   # search email&name
   search_email_num = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-default antd4-btn-icon-only antd4-input-search-button"])[1]')
   #第一个accemail
   if_accemail = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-link config-theme-system-user-primary-font emailName___2pzuV"])[1]')
   # 第一个phone num
   if_phonenum = (By.XPATH, '(//td[@class="antd4-table-cell"])[4]')

   #点击重置密码
   click_reserpasswd = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-link table-operation-btnLine-btn"])[1]')
   # reset passwd ok
   click_reset_ok = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[1]')
   # reset succ
   reset_succ = (By.XPATH, '(//div[@class="antd4-message-custom-content antd4-message-success"])[1]')
   # ru user 菜单按钮
   click_menu_ruuser = (By.XPATH, '(//div[@class="antd4-dropdown-trigger table-operation-omit"])[1]')
   # lock按钮
   lock_ruuser = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[1]')
   # unlock按钮
   unlock_ruuser = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[2]')
   #用户状态
   ruuser_status = (By.XPATH, '(//span[@class="antd4-badge-status-text"])[1]')

   # 是否有First Name
   if_firstname = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[1]')
   # 是否有Last Name
   if_lastname = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[2]')
   # 是否有Phone Number
   if_phonenumber = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[3]')
   # 是否有Post Code
   if_postcode = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[4]')
   # 是否有Country/Region
   if_countryregion = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[5]')
   # 是否有State/Province
   if_stateprovince = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[6]')
   # 是否有City
   if_city = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[7]')
   # 是否有Address
   if_address = (By.XPATH, '(//div[@class="cre-descriptions-nowrap"])[8]')
   # 状态筛选框
   select_status = (By.XPATH, '(//span[@class="anticon anticon-filter"])[1]')
   # 状态选择normal
   select_normal = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[1]')
   # 状态选择locked
   select_locked = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[2]')
   # 状态选择inactive
   select_inactive = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[3]')
   # 确定状态
   clicl_ok_status = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary antd4-btn-sm"])[1]')
   # reset状态
   clicl_reset_status = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-link antd4-btn-sm"])[1]')

   # custom setting 列表
   click_custom_setting = (By.CSS_SELECTOR, '[path="/console/theme_and_appearance"]')
   # Initialization Settings列表
   click_initialization_settings = (By.CSS_SELECTOR, '[path="/console/theme_and_appearance/initSettings"]')
   # 编辑welcome message
   edit_wel_msg = (By.XPATH, '(//span[@class="anticon anticon-edit icon___2SfBH"])[1]')
   # welcome message输入框
   input_wel_msg = (By.XPATH, '(//textarea[@placeholder="Welcome message."])[1]')
   # 点击preview
   click_preview = (By.XPATH, '(//a[@class="preview___3gfi-"])[1]')
   #预览wel_msg
   preview_wel_msg = (By.XPATH, '(//div[@class="info___3_NLx"])[1]')
   # 关闭预览
   close_preview = (By.XPATH, '(//span[@class="anticon anticon-close antd4-modal-close-icon"])[2]')
   # 点击确认
   click_ok_edit = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[1]')
   # 选择国家
   #num = random.randint(1, 8)
   #country_xpath = f"(//div[@class='antd4-select-item antd4-select-item-option'])[{num}]"
   select_country = (By.XPATH, "(//div[@class='antd4-select-item antd4-select-item-option'])[3]")
   # 编辑国家
   edit_country = (By.XPATH, '(//span[@class="anticon anticon-edit icon___2SfBH"])[2]')
   # 点击编辑国家
   click_edit_country = (By.XPATH, '(//span[@class="antd4-select-selection-item"])[1]')
   # 点击确认
   click_ok_countryedit = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[1]')
   #修改成功
   if_modify_succ = (By.XPATH, '(//div[@class="antd4-message-custom-content antd4-message-success"])[1]')

   # 编辑商户名
   edit_merchant_name = (By.XPATH, '(//span[@class="anticon anticon-edit icon___2SfBH"])[3]')
   # 输入商户名
   input_merchant_name = (By.XPATH, '(//input[@id="merchantName"])[1]')
   # 点击确认
   click_ok_merchant_name = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[1]')

   # 编辑email
   edit_email = (By.XPATH, '(//span[@class="anticon anticon-edit icon___2SfBH"])[4]')
   # 输入商户名
   input_merchant_email = (By.XPATH, '(//input[@id="merchantEmail"])[1]')

   # cedit control菜单
   click_credit_control = (By.XPATH, "(//div[contains(@data-menu-id,'CREDIT_CONTROL')])")
   # expense Control 列表
   click_expense_control = (By.CSS_SELECTOR, '[path="/console/expenseControl"]')
   #zar 输入框
   input_zar = (By.XPATH, '(//input[@id="list_0_ZAR"])[1]')
   # mzn 输入框
   input_mzn = (By.XPATH, '(//input[@id="list_0_MZN"])[1]')
   # mzn 输入框
   input_mzn1 = (By.XPATH, '(//input[@id="list_1_MZN"])[1]')
   # idr 输入框
   input_idr = (By.XPATH, '(//input[@id="list_0_IDR"])[1]')
   # sar 输入框
   input_sar = (By.XPATH, '(//input[@id="list_0_SAR"])[1]')
   # 提交
   click_submit_value = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[1]')
   # 选择postpaid
   click_postpaid = (By.XPATH, '(//div[@class="antd4-tabs-tab-btn"])[2]')
   # zar 输入框
   input_zar_post = (By.XPATH, '(//input[@id="list_0_ZAR"])[2]')
   input_zar1_post = (By.XPATH, '(//input[@id="list_1_ZAR"])[1]')
   # mzn 输入框
   input_mzn_post = (By.XPATH, '(//input[@id="list_0_MZN"])[2]')
   # mzn 输入框
   input_mzn_postnew = (By.XPATH, '(//input[@id="list_0_MZN"])[1]')
   # mzn 输入框
   input_mzn1_post = (By.XPATH, '(//input[@id="list_1_MZN"])[1]')
   # idr 输入框
   input_idr_post = (By.XPATH, '(//input[@id="list_0_IDR"])[2]')
   input_idr1_post = (By.XPATH, '(//input[@id="list_1_IDR"])[1]')
   # sar 输入框
   input_sar_post = (By.XPATH, '(//input[@id="list_0_SAR"])[2]')
   input_sar1_post = (By.XPATH, '(//input[@id="list_1_SAR"])[1]')

   # dunning Methods列表
   click_dunning_methods = (By.CSS_SELECTOR, '[path="/console/dunningMethods"]')
   # click down
   click_down = (By.XPATH, '(//span[@aria-label="Decrease Value"])[5]')
   # click down
   click_down_post = (By.XPATH, '(//span[@aria-label="Decrease Value"])[13]')

   # ACCOUNT_SETTING菜单
   click_account_setting = (By.XPATH, "(//div[contains(@data-menu-id,'ACCOUNT_SETTING')])")
   # security Setting 列表
   click_security_setting = (By.CSS_SELECTOR, '[path="/console/securitySetting"]')
   #是否有change password
   if_change_passwd = (By.XPATH, '(//div[@class="cre-bs-title-subtitle-small"])[1]')
   # 是否有2FA
   if_authentication = (By.XPATH, '(//div[@class="cre-bs-title-subtitle-small"])[2]')

   # MFA Settings列表
   click_mfa_settings = (By.CSS_SELECTOR, '[path="/console/theme_and_appearance/mfaSetting"]')
   # 取消勾选email
   cancel_email = (By.XPATH, '(//span[@class="antd4-checkbox antd4-checkbox-checked"])[1]')
   # 勾选email
   select_email = (By.XPATH, '(//span[@class="antd4-checkbox"])[1]')
   # 取消勾选sms
   cancel_sms = (By.XPATH, '(//span[@class="antd4-checkbox antd4-checkbox-checked"])[2]')
   # 勾选sms
   select_sms = (By.XPATH, '(//span[@class="antd4-checkbox"])[1]')

   # currency& tax rate列表
   click_currency_taxrate = (By.CSS_SELECTOR, '[path="/console/theme_and_appearance/priceSetting"]')
   #点击tax rate
   click_tax_rate = (By.XPATH, '(//div[@class="antd4-tabs-tab"])[1]')
   # 编辑费率
   edit_taxrate = (By.XPATH, '(//td[@class="antd4-table-cell"])[40]')
   # 输入费率
   input_taxrate = (By.XPATH, '(//input[@id="taxRate"])[1]')
   # 点击ok
   click_ok_taxrate = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[1]')
   # 费率值
   taxrate_value = (By.XPATH, '(//td[@class="antd4-table-cell"])[38]')
   #Updated successfully.
   update_succ = (By.XPATH, '(//div[@class="antd4-message-custom-content antd4-message-success"])[1]')

   # date time列表
   click_date_time = (By.CSS_SELECTOR, '[path="/console/theme_and_appearance/dateTime"]')
   # 编辑时间格式
   edit_time = (By.XPATH, '(//span[@class="anticon anticon-edit"])[1]')
   # 点击选择时间格式
   click_select_time = (By.XPATH, '(//span[@class="antd4-select-selection-search"])[1]')
   # 点击选择时间格式
   select_time = (By.XPATH, '(//div[@class="antd4-select-item antd4-select-item-option"])[1]')
   # 还原时间格式
   reset_time = (By.XPATH, '(//div[@class="antd4-select-item antd4-select-item-option"])[2]')
   # 点击ok
   click_ok_time = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[1]')

   # jump link列表
   click_jump_link = (By.CSS_SELECTOR, '[path="/console/theme_and_appearance/jumpLink"]')
   # 编辑Customer Service Agreement
   click_edit_csa = (By.XPATH, '(//span[@class="anticon anticon-edit"])[1]')
   # preview展示语
   if_preview = (By.XPATH, '(//div[@class="ant-form-text"])[1]')

   #状态筛选按钮
   select_status_data = (By.XPATH, '(//span[@class="anticon anticon-filter"])[1]')
   # undeleted
   select_undeleted = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[1]')
   # deleting
   select_deleting = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[2]')
   # abnormal
   select_abnormal = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[3]')
   # deleted
   select_deleted = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[4]')
   # reset
   click_reset_data = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-link antd4-btn-sm"])[1]')
   # ok
   click_ok_data = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary antd4-btn-sm"])[1]')
   # 数量统计
   sum_data = (By.XPATH, '(//li[@class="antd4-pagination-total-text"])[1]')

   # tickets菜单
   click_tickets = (By.XPATH, "(//div[contains(@data-menu-id,'TICKET')])")
   # my tickets列表
   click_my_tickets = (By.CSS_SELECTOR, '[path="/console/tickets/myTicket"]')
   # transfer
   click_transfer = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-link renderActionLink"])[3]')
   # 选择support
   click_support = (By.XPATH, '(//span[@class="antd4-select-selection-search"])[2]')
   # 选择support
   select_support = (By.XPATH, '(//span[@class="antd4-badge antd4-badge-status antd4-badge-not-a-wrapper"])[1]')
   # remarks 输入框
   input_remarks = (By.XPATH, '(//textarea[@id="remarks"])[1]')
   # transfer ok按钮
   click_ok_transfer = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[1]')

   # transfer to other team按钮
   click_transfer_tot = (By.XPATH, '(//span[@class="antd4-radio"])[1]')

   #筛选event的状态
   select_event_status = (By.XPATH, '(//span[@class="anticon anticon-filter"])[3]')
   #选择ignored
   #select_ignored = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[6]')
   # 选择ignored 确认
   click_ok_ignored = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary antd4-btn-sm"])[1]')
   #第一个eventid
   if_eventid = (By.XPATH, '(//td[@class="antd4-table-cell"])[1]')
   # 操作event菜单按钮
   click_event_menu = (By.XPATH, '(//span[@class="anticon anticon-ellipsis table-operation-ellipsis"])[1]')
   # cancel ingore
   click_cancel_ignored = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[9]')
   #确认 cancel ingore
   click_ok_cancel = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary antd4-btn-dangerous"])[1]')
   #reset event
   reset_event = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-link antd4-btn-sm"])[1]')
   # ingore
   click_ignore = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[10]')
   # reson输入框
   input_reason = (By.XPATH, '(//textarea[@id="reason"])[1]')
   #提交ignore
   submit_ignore = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[2]')
   #状态名
   if_event_status = (By.XPATH, '(//div[@class="antd4-space-item"])[4]')
   # 输入eventid
   input_eventid = (By.XPATH, '(//input[@id="queryCriteria"])[1]')
   # 搜索eventid
   search_eventid = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[1]')

   # CRE&ASCM data 列表
   click_creascm_data = (By.CSS_SELECTOR, '[path="/console/creData"]')
   # ASCM (id-jakarta-testbed-d01)的regin
   click_ascm_region = (By.XPATH, '(//div[@class="antd4-tabs-tab-btn"])[2]')
   # 是否有Basic Information
   if_basic_infoma = (By.XPATH, '(//div[@class="antd4-descriptions-title"])[1]')
   # 是否有Operational Information
   if_oper_info = (By.XPATH, '(//div[@class="table-info-title"])[1]')
   # 是否有Data Deletion Detail
   if_data_deletion = (By.XPATH, '(//div[@class="table-info-title"])[2]')
   # 是否有ascm Data Deletion Detail
   if_acsm_data_deletion = (By.XPATH, '(//div[@class="table-info-title"])[4]')
   # 是否有ascm Operational Information
   if_ascm_oper_info = (By.XPATH, '(//div[@class="table-info-title"])[3]')
   # 是否有ascm Basic Information
   if_ascm_basic_infoma = (By.XPATH, '(//div[@class="antd4-descriptions-title"])[2]')

   # organization 列表
   click_pu_org = (By.CSS_SELECTOR, '[path="/console/organization/platformUser"]')
   #pu org menu
   click_pu_org_menu = (By.XPATH, '(//span[@class="anticon anticon-ellipsis table-operation-ellipsis"])[1]')
   #edit role
   click_edit_role = (By.XPATH, '(//span[@class="antd4-dropdown-menu-title-content"])[3]')
   #选择role
   click_select_role = (By.XPATH, '(//span[@class="antd4-select-selection-item"])[2]')
   # 选择role
   select_role = (By.XPATH, '(//div[@class="antd4-select-item-option-content"])[2]')
   # 确认ok选择role
   click_ok_role = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-primary"])[1]')
   # 修改角色成功
   if_edit_role_succ = (By.XPATH, '(//div[@class="antd4-message-custom-content antd4-message-success"])[1]')
   #不可点击的log
   disabled_log = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-link table-operation-btnLine-btn"])[1]')


   #点击选择币种
   click_currency_sales = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-default"])[1]')
   # 点击取消选择币种mzn
   click_unmzn = (By.XPATH, '(//span[@class="antd4-radio-button antd4-radio-button-checked"])[2]')
   # 点击取消选择币种idr
   click_unidr = (By.XPATH, '(//span[@class="antd4-radio-button antd4-radio-button-checked"])[2]')
   # 点击取消选择币种sar
   click_unsar = (By.XPATH, '(//span[@class="antd4-radio-button antd4-radio-button-checked"])[2]')
   # 点击选择币种mzn
   click_mzn = (By.XPATH, '(//span[@class="antd4-radio-button"])[1]')
   # 点击选择币种idr
   click_idr = (By.XPATH, '(//span[@class="antd4-radio-button"])[1]')
   # 点击选择币种sar
   click_sar = (By.XPATH, '(//span[@class="antd4-radio-button"])[1]')
   # dashboards菜单
   click_dashboards = (By.XPATH, "(//div[contains(@data-menu-id,'DASHBOARD_PLT')])")
   # salesAmountData 列表
   click_sales_amount = (By.CSS_SELECTOR, '[path="/console/dashboardReport/salesAmountData"]')
   #点击save setting
   click_save_setting = (By.XPATH, '(//button[@class="antd4-btn antd4-btn-link"])[2]')
   #是否保存成功Save the setting successfully.
   if_save_setting = (By.XPATH, '(//div[@class="antd4-message-custom-content antd4-message-success"])[1]')
   # 点击Daily Data Tracking(USD)
   click_daily = (By.XPATH, '(//div[@class="common-title___H_WXF"])[2]')


